<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {

    public function _initAutoload() {
        $loader = new Zend_Application_Module_Autoloader(array(
                    'namespace' => '',
                    'basePath' => 'APPLICATION_PATH'));
        $autoloader = Zend_Loader_Autoloader::getInstance();
        $autoloader->registerNamespace(array('App_'));
        return $loader;
    }

    protected function _initPlugins() {
        $front = Zend_Controller_Front::getInstance();
        $front->registerPlugin(new Application_Plugin_Acl());
    }

    /*
     * Инициализируем объект навигатора и передаем его в View
     *
     * @return Zend_Navigation
     */

    public function _initNavigation() {
        // Бутстрапим View
        $this->bootstrapView();
        $view = $this->getResource('view');
        // Создаем новый контейнер на основе нашей структуры
        $navconf = new Zend_Config_Xml(APPLICATION_PATH . '/configs/menu.xml', 'nav');
        $container = new Zend_Navigation($navconf);
        // Передаем контейнер в View
        $view->menu = $container;
        return $container;
    }

    protected function _initEmail() {
        $email_config = array(
            'auth' => 'login',
            'username' => 'imaystrenko1987@gmail.com',
            'password' => 'master6663015495',
            'ssl' => 'tls',
            'port' => 587
        );
        $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $email_config);
        Zend_Mail:: setDefaultTransport($transport);
    }

    protected function _initIdentity() {
        if (!Zend_Auth::getInstance()->hasIdentity()) {
            $this->view->identity = false;
        } else {
            $this->view->identity = Zend_Auth::getInstance()->getIdentity();
        }
    }

    protected function _initRegistry() {
        $resource = $this->getPluginResource('db');
        Zend_Registry::set('db', $resource->getDbAdapter());
    }

    protected function _initTranslate() {
        $data = array(
            Zend_Validate_Alnum::STRING_EMPTY => 'Поле не может быть пустым. Заполните его, пожалуйста',
            Zend_Validate_Alpha::STRING_EMPTY => 'Поле не может быть пустым. Заполните его, пожалуйста',
            Zend_Validate_Digits::STRING_EMPTY => 'Поле не может быть пустым. Заполните его, пожалуйста',
            Zend_Validate_EmailAddress::INVALID => '"%value%" неправильный адрес електронной почты. Введите его в формате имя@домен',
            Zend_Validate_EmailAddress::INVALID_HOSTNAME => '"%hostname%" неверный домен для адреса "%value%"',
            Zend_Validate_EmailAddress::INVALID_LOCAL_PART => '"%localPart%" не правильное имя для адреса "%value%", вводите адрес вида имя@домен',
            Zend_Validate_EmailAddress::INVALID_FORMAT => "Вы ввели неверный e-mail адрес. Введите e-mail в формате example@domain.com",
            Zend_Validate_Identical::NOT_SAME => 'Значения не совпадают',
            Zend_Validate_InArray::NOT_IN_ARRAY => '"%value%" не найдено в перечисленных допустимых значениях',
            Zend_Validate_NotEmpty::IS_EMPTY => 'Введённое значение пустое, заполните поле, пожалуйста',
            Zend_Captcha_Word::BAD_CAPTCHA => 'Неправильное значение с картинки',
        );
        $translator = new Zend_Translate('Array', $data, 'ru_RU');
        $translator->getAdapter()->setLocale(new Zend_Locale('ru_RU'));
        Zend_Validate_Abstract::setDefaultTranslator($translator);
    }

}

